Gate trajectory settling on progress, not elapsed ticks - #29
Open
Jepson2k wants to merge 5 commits into
Open
Conversation
The settle phase completed a segment after a fixed 20-tick cap even with the firmware still closing on the target, and the mock transport freezes all residual motion once the command stream goes idle — on a starved host the simulated plant falls behind the waypoint stream, the cap fires, and the robot is reported complete while stranded short of the target (waldo-commander's hand-eye CI observed home "complete" with J1 29 deg from standby). Settling now resets the tick counter whenever the position error shrinks, so the cap only fires after 20 ticks without progress — preserving the anti-hang escape for real hardware's steady-state residual — and an unconverged completion logs the residual instead of passing silently. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EdLG1uiKKZJ6aAeiojeRwd
scipy-stubs 1.18 types bc_type derivative values as array-likes only, while scipy requires scalars for 1-D y. ty narrows a bare-declared Any on assignment, so the tuple branch failed overload resolution; an annotated assignment keeps bc at its declared Any. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LkVPPMQg33tFuGCVLkyrJQ
ty 0.0.69 resolves ndarray.tolist() without the ty-specific suppression and infers the frame memoryview union directly; it now warns on both leftovers, and warnings fail the lint hook. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LkVPPMQg33tFuGCVLkyrJQ
Unpinned stub releases have broken the ty lint hook twice; ty itself stays unpinned deliberately while it is still in beta. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LkVPPMQg33tFuGCVLkyrJQ
scipy-stubs 1.18.x requires Python >=3.12, so a single exact pin is uninstallable on the 3.11 CI jobs; 3.11 pins the last 1.17 release. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LkVPPMQg33tFuGCVLkyrJQ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The segment player's settle phase completed a trajectory after a fixed 20-tick cap even when the firmware was still closing on the target, and the mock transport freezes all residual motion once the command stream goes idle. On a CPU-starved host the simulated plant falls behind the waypoint stream, the cap fires, and the command is reported complete with the robot stranded short of its target — observed in Waldo-Commander's hand-eye CI (Jepson2k/Waldo-Commander#29), where a
home(wait=True)"completed" with J1 still 29° from standby and subsequent relative moves then ran out of joint range.Settling now resets the tick counter whenever the position error shrinks, so the cap only fires after 20 ticks with no progress. This preserves the anti-hang escape for real hardware's steady-state residual (error stops changing → escape after 200 ms, as before), while a plant that is still converging is always allowed to finish — completion is never reported mid-motion. An unconverged completion now logs a warning with the residual step count instead of passing silently.
Verified with the parol6 suite (275 passed) and the full Waldo-Commander suite against this branch (312 passed). Also included on
claude/eye-hand-calibration-waldo-nrb1sf(#28) so the WC PR's CI picks it up via branch matching; merging this PR first will shrink #28 back to its own change.🤖 Generated with Claude Code
https://claude.ai/code/session_01EdLG1uiKKZJ6aAeiojeRwd